package com.augus.admin.Servlet;


import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;

/**
 * 1、MyServlet --> /my
 * 2、DispatcherServlet --> /
 */
// (proxyBeanMethods = true)：保证依赖的组件始终是单实例的
@Configuration(proxyBeanMethods = true)
public class MyRegistConfig {

  @Bean
  public ServletRegistrationBean myServlet() {
    MyServlet myServlet = new MyServlet();

    return new ServletRegistrationBean(myServlet, "/my", "/my02");
  }


  @Bean
  public FilterRegistrationBean myFilter() {

    MyFilter myFilter = new MyFilter();
//        return new FilterRegistrationBean(myFilter,myServlet());
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);
    filterRegistrationBean.setUrlPatterns(Arrays.asList("/my", "/css/*"));
    return filterRegistrationBean;
  }

  @Bean
  public ServletListenerRegistrationBean myListener() {
    MySwervletContextListener mySwervletContextListener = new MySwervletContextListener();
    return new ServletListenerRegistrationBean(mySwervletContextListener);
  }
}
